'use strict';


const Controller = require('egg').Controller;

class RoleController extends Controller {

  // 获取用户列表
  async index() {
    const { ctx, app } = this;
    // 1获取数据
    const { pageNum = 1, pageSize = 10 } = ctx.request.query;

    // 2验证数据
    ctx.validate({ pageNum: app.validate.user.pageNum, pageSize: app.validate.user.pageSize }, ctx.request.query);

    // 3操作数据库获取角色列表
    const res = await ctx.service.admin.role.getRoleList(pageNum, pageSize);
    res ? ctx.helper.success('获取角色列表成功', res) : ctx.helper.error('获取角色列表失败', 400);
  }

  // 根据获取详细资料
  async show() {
    const { ctx } = this;
    const res = await ctx.service.admin.role.getInfo(ctx.params.id);
    res ? ctx.helper.success('获取成功', res) : ctx.helper.error('获取失败', 400);
  }

  // 新增角色  ok
  async create() {
    const { ctx } = this;
    const res = await ctx.service.admin.role.createRole(ctx.request.body);
    res ? ctx.helper.success('新增角色成功', res) : ctx.helper.error('新增角色失败！', 400);
  }

  // 修改角色信息
  async update() {
    const { ctx } = this;
    const res = await ctx.service.admin.role.updateRole(ctx.params.id, ctx.request.body);
    res && res[0] !== 0 ? ctx.helper.success('修改角色成功') : ctx.helper.error('修改角色失败', 400);
  }
  // 删除角色
  async destroy() {
    const { ctx } = this;
    // ctx.request.body.ids = [];
    // ctx.request.body.ids.push(ctx.params.id);
    if (!ctx.request.body.ids) return ctx.helper.error('请选择要删除的选中项');
    const res = await ctx.service.admin.role.destroyRole(ctx.request.body);
    if (res.err) return ctx.helper.error('不可删除默认角色', 400);
    res ? ctx.helper.success('删除角色成功') : ctx.helper.error('删除失败', 400);
  }
  // 设置没默角色
  async setDefaultRole() {
    const { ctx } = this;
    const res = await ctx.service.admin.role.setDefaultRole(ctx.params.id);
    res ? ctx.helper.success('设置默认角色成功') : ctx.helper.error('设置默认角色失败', 400);
  }

}

module.exports = RoleController;
